package creator.abstractfactory;

import creator.abstractfactory.family.skill.SkillProduct;
import creator.abstractfactory.family.soldier.SoldiersProduct;
import creator.abstractfactory.grade.sanguo.SanguoFigureFactory;
import creator.abstractfactory.family.wujiang.Numerical;
import creator.abstractfactory.family.wujiang.WujiangProduct;

/**
 * 创建demo
 */
public class AbstractFactoryTestDemo {

    public static void main(String[] args) {

        // 三国人物创建
        FigureAbstractFactory sanguoFactory = new SanguoFigureFactory();

        // 创建武将
        WujiangProduct wujiangAbstractFactory = sanguoFactory.WujiangAbstractFactory();
        // 创建阵营
        wujiangAbstractFactory.GenerateCamp("吴国", "水中攻击 + 2;水中速度 + 2");
        // 创建生平
        wujiangAbstractFactory.GenerateLife("周瑜 字公瑾，文武全能，火烧赤壁一战表现神勇;");
        // 创建数值
        wujiangAbstractFactory.GenerateNumerical("周瑜", "公元1945-1974", "80", "3", "80", "火计 伤害 + 10;水攻 伤害 + 15");
        // 创建宝物
        wujiangAbstractFactory.GenerateTreasure("公瑾羽扇",new Numerical("公瑾羽扇","公元1970","20","0","10","火计 伤害 + 10"));

        wujiangAbstractFactory.show();

        // 创建士兵
        SoldiersProduct soldiersAbstractFactory = sanguoFactory.SoldiersAbstractFactory();
        // 创建兵种
        soldiersAbstractFactory.GenerateArms();
        // 创建数值
        soldiersAbstractFactory.GenerateNumeriacal();

        // 创建技能
        SkillProduct skillAbstractFactory = sanguoFactory.SkillAbstractFactory();
        // 创建效果
        skillAbstractFactory.GenerateEffects();
        // 创建简介
        skillAbstractFactory.GenerateIntroduction();
        // 创建数值
        skillAbstractFactory.GenerateNumerical();


     /*   // 七雄人物创建
        FigureAbstractFactory qixiongFactory = new QixiongFigureFactory();

        // 创建武将
        wujiangAbstractFactory = qixiongFactory.WujiangAbstractFactory();
        // 创建阵营
        wujiangAbstractFactory.GenerateCamp();
        // 创建生平
        wujiangAbstractFactory.GenerateLife();
        // 创建数值
        wujiangAbstractFactory.GenerateNumerical();
        // 创建宝物
        wujiangAbstractFactory.GenerateTreasure();

        // 创建士兵
         soldiersAbstractFactory = qixiongFactory.SoldiersAbstractFactory();
        // 创建兵种
        soldiersAbstractFactory.GenerateArms();
        // 创建数值
        soldiersAbstractFactory.GenerateNumeriacal();

        // 创建技能
         skillAbstractFactory = qixiongFactory.SkillAbstractFactory();
        // 创建效果
        skillAbstractFactory.GenerateEffects();
        // 创建简介
        skillAbstractFactory.GenerateIntroduction();
        // 创建数值
        skillAbstractFactory.GenerateNumerical();*/
    }
}
